iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
SideProject30

出遊不怕一個人系列 第 6

DAY6-註冊頁面(react使用報錯)

  • 分享至 

  • xImage
  •  

延續昨日的註冊,發現版本問題真的影響很大呢! 今天在寫的時候還是用舊式的寫法,報錯後又花了很多時間在找答案,統整一下問題們,可能有人也有跟我一樣的問題。

Uncaught TypeError: Cannot read properties of undefined (reading 'useState')

這兩個寫法其實是一樣的,會報錯的原因在於引入的內容,一開始沒有特別注意到所以才犯了這樣的錯誤><,後來有看到網路上有人問一樣的問題(連結),就不覺得犯這個錯很孤單了。

//法一
import { useState } from "react";
const [email,setEmail]=useState('');

//法二
import React from "react";
const [email,setEmail]=React.useState('');

input for/htmlFor

另一個報錯是在input上,就像class在react裡面是className;for在這也會改成htmlFor。

官方文件有說到「React element 使用 htmlFor 來替代 for,因為 for 在 JavaScript 是保留字。****」

ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17.

用到了舊式寫法導致的報錯…才知道現在沒有這種寫法了!

//old
ReactDOM.render(<App />,document.getElementById("root"))

//new
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

都在解錯誤的一天….


上一篇
DAY5-註冊頁面(Switch/Router問題)
下一篇
DAY7-註冊頁面(加入firebase)
系列文
出遊不怕一個人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
Global Rachel
iT邦新手 3 級 ‧ 2023-09-21 11:00:05

版本差異真的很大!node使用的版本下載包時也會有影響~也都是很後來被前輩指點才知道~

我要留言

立即登入留言